import type { I18nOptions } from 'vue-i18n'
import { createI18n } from 'vue-i18n'

import en from '@/components/i18n/locales/en/index.js'
import zhCN from '@/components/i18n/locales/zh-CN/index.js'

export enum LocaleMapping {
  'en-US' = 'en',
  'zh-CN' = 'zh-CN',
}

const messages: I18nOptions['messages'] = {
  en,
  'zh-CN': zhCN,
}
const i18n = createI18n({
  legacy: false, // 必须设置为 false 以兼容 Vue 3 的 Composition API
  allowComposition: true,
  messages,
  locale: 'zh-CN',
  fallbackLocale: 'zh-CN',
  missingWarn: false, // 关闭未找到键的警告
  //  silentTranslationWarn: false, // 旧版可能用这个
  fallbackWarn: false, // 关闭回退警告
  // missing(locale, key) {
  //   const processedKey = handleKey(key);
  //   if (processedKey === key) return key  // 如果去掉符号还是相同，直接返回key避免无限递归
  //   return i18n.t(processedKey) === processedKey ? key : i18n.t(processedKey); // 尝试用处理后的 key 翻译
  // }
})
export default i18n
